@checkbox-border-color: darken(@base, 12%);
@checkbox-border-radius: 3px;
@checkbox-background-color: @background;
@checkbox-hover-border-color: darken(@base, 24%);
@checkbox-hover-box-shadow: none;
@checkbox-checked-border-color: darken(@base, 12%);
@checkbox-checked-background-color: @background;
@checkbox-checked-color: @accent;
@checkbox-active-border-color: lighten(@accent, 13%);
@checkbox-active-box-shadow: 0 0 2px 0 @checkbox-active-border-color;
@checkbox-disabled-background-color: @background;
@checkbox-disabled-color: darken(@base, 29%);
@checkbox-disabled-border-color: darken(@base, 12%);
@checkbox-indeterminate-gradient: @selected-gradient;
@checkbox-indeterminate-border-color: @checkbox-active-border-color;
@checkbox-indeterminate-background-color: @checkbox-checked-color;
@checkbox-indeterminate-hover-background-color: @checkbox-indeterminate-background-color;
@checkbox-indeterminate-hover-border-color: @checkbox-indeterminate-background-color;
@checkbox-indeterminate-border-radius: (@checkbox-border-radius - 1);

.k-checkbox-label:before{
    border-color: @checkbox-border-color;
    background: @checkbox-background-color;
    border-radius: @checkbox-border-radius;
}

.k-checkbox:hover + .k-checkbox-label:before,
.k-checkbox:checked:hover + .k-checkbox-label:before,
.k-checkbox-label:hover:before,
.k-checkbox:checked + .k-checkbox-label:hover:before  {
    border-color: @checkbox-hover-border-color;
    box-shadow: @checkbox-hover-box-shadow;
}

.k-checkbox:checked + .k-checkbox-label:before {
    background-color: @checkbox-checked-background-color;
    border-color: @checkbox-checked-border-color;
    color: @checkbox-checked-color;
}

.k-checkbox:active + .k-checkbox-label:before,
.k-checkbox-label:active:before {
    box-shadow: @checkbox-active-box-shadow;
    border-color: @checkbox-active-border-color;
}

.k-checkbox:checked:active + .k-checkbox-label:before,
.k-checkbox:checked + .k-checkbox-label:active:before {
    box-shadow: @checkbox-active-box-shadow;
    border-color: @checkbox-active-border-color;
}

.k-checkbox:disabled + .k-checkbox-label {
    color: @checkbox-disabled-color;
}

.k-checkbox:disabled + .k-checkbox-label:hover:before {
    box-shadow: none;
}

.k-checkbox:disabled + .k-checkbox-label:before,
.k-checkbox:checked:disabled + .k-checkbox-label:before,
.k-checkbox:checked:disabled + .k-checkbox-label:active:before,
.k-checkbox:checked:disabled + .k-checkbox-label:hover:before  {
    color: @checkbox-disabled-color;
    background: @checkbox-disabled-background-color;
    border-color: @checkbox-disabled-border-color;
    border-radius: @checkbox-border-radius;
}

.k-checkbox:focus + .k-checkbox-label:before,
.k-checkbox:focus + .k-checkbox-label:hover:before {
    border-color: @checkbox-active-border-color;
    box-shadow: @checkbox-active-box-shadow;
}

.k-checkbox:indeterminate + .k-checkbox-label:after {
    background-color: @checkbox-indeterminate-background-color;
    .composite-background(@checkbox-indeterminate-gradient);
    border-color: @checkbox-indeterminate-border-color;
    border-radius: @checkbox-indeterminate-border-radius;
}

.k-checkbox:indeterminate:hover + .k-checkbox-label:after {
    border-color: @checkbox-indeterminate-hover-border-color;
    background-color: @checkbox-indeterminate-hover-background-color;
}
